#pragma once

//
#define THREAD_NUM 5
#define MQ_MAXSIZE 10
#define MQ_NAME "/pool_task_queue"

// 任务结构体
typedef struct
{
    void *(*task_func)(void *arg); // 任务函数
    void *arg; //任务参数
} Task;

// 初始化线程池:创建队列、初始化线程数组
int app_pool_init(void);

/**
 * 向线程池添加任务
 * 1.把函数和参数封装为Task结构体
 * 2.把结构体提交到队列中
 */
int app_pool_add_task(void *(*task_func)(void *arg), void *arg);

/**
 * 销毁线程池
 * 1.销毁队列，删除队列文件
 */

int app_pool_destory(void);
